package cn.com.nes.site.entity.vo.workOrder;

import cn.com.nes.site.entity.vo.BaseVO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.NotBlank;
import org.hibernate.validator.constraints.NotEmpty;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.List;

/**
 * 添加工单入参
 *
 * @author lux
 * @date 2018-11-08 21:00
 */
@Data
@NoArgsConstructor
@EqualsAndHashCode
public class WorkOrderVO extends BaseVO {
    @ApiModelProperty(value = "类型不能为空1.维修工单 2.通用工单.3是咨询工单 4.安装工单")
    @NotNull(message = "类型不能为空")
    private String type;
    /**
     * 企业id
     */
    @ApiModelProperty(value = "企业id")
    private String companyId;

    /**
     * 来电时间不能能为空
     */
    @ApiModelProperty(value = "来电时间不能为空")
    private String callTime;
    /**
     * 用户id
     */
    @ApiModelProperty(value = "用户id")
    private String userId;
    /**
     * 房屋id
     */
    @ApiModelProperty(value = "房屋id")
    private Long houseId;

    @ApiModelProperty(value = "行政区划编码")
    @NotNull(message = "行政区划不能为空")
    private String xzqhdm;
    /**
     * 客户id
     */
    @ApiModelProperty(value = "客户id")
    private String clienteleId;
    /**
     * 联系人电话
     */
    @ApiModelProperty(value = "联系人电话")
    @NotBlank(message = "联系人电话不能为空")
    private String phone;
    /**
     * 联系人姓名
     */
    @ApiModelProperty(value = "联系人姓名")
    @NotBlank(message = "联系人姓名不能为空")
    private String customerName;
    /**
     * 工单任务类型id
     */
    @ApiModelProperty(value = "工单任务类型id")
    private String workTypeId;
    /**
     * 紧急程度id
     */
    @ApiModelProperty(value = "紧急程度id")
    private Integer emergencyDegreeId;
    /**
     * 维修设备id
     */
    @ApiModelProperty(value = "维修设备id")
    private String equipmentIds;
    /**
     * 维修设备ids
     */
    @ApiModelProperty(value = "维修设备ids")
    private String equipmentIdsStr;
    /**
     * 描述
     */
    @ApiModelProperty(value = "描述")
    private String desc;
    /**
     * 业务支持人员id
     */
    @ApiModelProperty(value = "业务支持人员id")
    private String maintainId;
    @ApiModelProperty(value = "工单来源")
    private Integer handleMode;
    @ApiModelProperty(value = "处理id")
    private Long handleId;

    /**
     * 工单地址
     */
    @ApiModelProperty(value = "详细地址")
    @NotNull(message = "详细地址不能为空")
    private String address;

    /**
     * 设备质保 质保内（01）质保外（02）、不选（空白字符串）
     */
    @ApiModelProperty(value = "设备质保 质保内（01）质保外（02）、不选（空白字符串）")
    private String sb_sfzb;

    /**
     * 工单问题分类 字典表AppealCategory其中 01代表故障类、02代表售后服务类
     */
    @ApiModelProperty(value = "工单问题分类 字典表AppealCategory其中 01代表故障类、02代表售后服务类")
    private String appealCategory;

    @ApiModelProperty(value = "咨询工单分类 consult_type")
    private String consultType;

    /**
     * 诉求内容
     */
    @ApiModelProperty(value = "诉求内容")
    private String appealContent;

    /**
     * 工单问题分类细类   字典表WorkOrderEvaluation
     */
    @ApiModelProperty(value = "工单问题分类细类字典表WorkOrderEvaluation")
    private String evaluation;

    @ApiModelProperty(value = "派单时距离终点的距离")
    private Integer distance;
    //维修类型
    @ApiModelProperty(value = "维修类型")
    private String repairType;
    // 维修价格
    @ApiModelProperty(value = "维修价格")
    private BigDecimal repairPrice;
    //起步距离
    @ApiModelProperty(value = "起步距离")
    private BigDecimal baseDistance;
    //每公里价格
    @ApiModelProperty(value = "每公里价格")
    private BigDecimal pricePerKM;
    //是否往返, 0否1是
    @ApiModelProperty(value = "是否往返, 0否1是")
    private Integer roundTrip;
    // 故障是否修理完毕, 0-已修好, 1-未修好, 2-等待配件
    @ApiModelProperty(value = "故障是否修理完毕, 0-已修好, 1-未修好, 2-等待配件")
    private Integer repairResult;
    //是否收费, 0-未收费, 1-收费
    @ApiModelProperty(value = "是否收费, 0-未收费, 1-收费")
    private Integer charged;
    //  备件id
    @ApiModelProperty(value = "备件id")
    private String partId;
    //冷媒类型
    @ApiModelProperty(value = "冷媒类型")
    private String refrigerantType;
    //冷媒总价格
    @ApiModelProperty(value = "冷媒总价格")
    private BigDecimal refrigerantPrice;
    //冷媒数量
    @ApiModelProperty(value = "冷媒数量")
    private BigDecimal refrigerantAmount;
    //责任方
    @ApiModelProperty(value = "责任方")
    private String personliable;
    //工单关闭原因
    @ApiModelProperty(value = "工单关闭原因")
    private String closingreason;
    //配件申请单id
    @ApiModelProperty(value = "配件申请单id")
    private String sparePartApplicationId;
    //支付状态,0-待支付,1-已支付
    @ApiModelProperty(value = "支付状态,0-待支付,1-已支付")
    private Integer paymentState;
}
